#pragma once
#include <string>

namespace lib_wrapper {
class ILogger {
public:
    ILogger() = default;
    virtual ~ILogger() = default;

    ILogger(const ILogger&) = delete;
    ILogger& operator=(const ILogger&) = delete;
    ILogger(ILogger&&) = default;
    ILogger& operator=(ILogger&&) = default;

    virtual void log(const std::string& level, const std::string& message) = 0;
    virtual void set_level(const std::string& level) = 0;
    virtual void flush() = 0;
};
} // namespace lib_wrapper
